package org.larkdoc.model.vo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.larkdoc.model.entity.UserInfo;

/**
 * 组信息VO(View Object)
 * 
 * @author  zhangpeijun[zhangpeijun1024@qq.com]
 * @version  [v1.0.1, 2017年10月17日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public class GroupVO implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    private Integer           id;
    
    private String            name;
    
    private String            code;
    
    private Integer           visibleRange;
    
    private String            creator;
    
    private Integer           isValid;
    
    private Date              createTime;
    
    private Date              updateTime;
    
    private String            remark;
    
    private String            userIds;
    
    private List<UserInfo>    users;
    
    /**
     * Returns : id
     *
     * @return the value of group_info.id
     *
     * @mbggenerated
     */
    public Integer getId() {
        return id;
    }
    
    /**
     * This method sets : id
     *
     * @param id the value for group_info.id
     *
     * @mbggenerated
     */
    public void setId(Integer id) {
        this.id = id;
    }
    
    /**
     * Returns : 群组名称-角色名称
     *
     * @return the value of group_info.name
     *
     * @mbggenerated
     */
    public String getName() {
        return name;
    }
    
    /**
     * This method sets : 群组名称-角色名称
     *
     * @param name the value for group_info.name
     *
     * @mbggenerated
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }
    
    /**
     * Returns : 群组代码-角色代码
     *
     * @return the value of group_info.code
     *
     * @mbggenerated
     */
    public String getCode() {
        return code;
    }
    
    /**
     * This method sets : 群组代码-角色代码
     *
     * @param code the value for group_info.code
     *
     * @mbggenerated
     */
    public void setCode(String code) {
        this.code = code == null ? null : code.trim();
    }
    
    /**
     * Returns : 可见范围-0：自己可见，1：所有人可见
     *
     * @return the value of group_info.visible_range
     *
     * @mbggenerated
     */
    public Integer getVisibleRange() {
        return visibleRange;
    }
    
    /**
     * This method sets : 可见范围-0：自己可见，1：所有人可见
     *
     * @param visibleRange the value for group_info.visible_range
     *
     * @mbggenerated
     */
    public void setVisibleRange(Integer visibleRange) {
        this.visibleRange = visibleRange;
    }
    
    /**
     * Returns : 创建者
     *
     * @return the value of group_info.creator
     *
     * @mbggenerated
     */
    public String getCreator() {
        return creator;
    }
    
    /**
     * This method sets : 创建者
     *
     * @param creator the value for group_info.creator
     *
     * @mbggenerated
     */
    public void setCreator(String creator) {
        this.creator = creator == null ? null : creator.trim();
    }
    
    /**
     * Returns : 数据状态-数据是否有效：0：无效,1：有效
     *
     * @return the value of group_info.is_valid
     *
     * @mbggenerated
     */
    public Integer getIsValid() {
        return isValid;
    }
    
    /**
     * This method sets : 数据状态-数据是否有效：0：无效,1：有效
     *
     * @param isValid the value for group_info.is_valid
     *
     * @mbggenerated
     */
    public void setIsValid(Integer isValid) {
        this.isValid = isValid;
    }
    
    /**
     * Returns : 创建时间
     *
     * @return the value of group_info.create_time
     *
     * @mbggenerated
     */
    public Date getCreateTime() {
        return createTime;
    }
    
    /**
     * This method sets : 创建时间
     *
     * @param createTime the value for group_info.create_time
     *
     * @mbggenerated
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    /**
     * Returns : 更新时间
     *
     * @return the value of group_info.update_time
     *
     * @mbggenerated
     */
    public Date getUpdateTime() {
        return updateTime;
    }
    
    /**
     * This method sets : 更新时间
     *
     * @param updateTime the value for group_info.update_time
     *
     * @mbggenerated
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    /**
     * Returns : 备注信息
     *
     * @return the value of group_info.remark
     *
     * @mbggenerated
     */
    public String getRemark() {
        return remark;
    }
    
    /**
     * This method sets : 备注信息
     *
     * @param remark the value for group_info.remark
     *
     * @mbggenerated
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }
    
    public String getUserIds() {
        return userIds;
    }
    
    public void setUserIds(String userIds) {
        this.userIds = userIds;
    }
    
    public List<UserInfo> getUsers() {
        return users;
    }
    
    public void setUsers(List<UserInfo> users) {
        this.users = users;
    }
    
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("GroupVO [id=");
        builder.append(id);
        builder.append(", name=");
        builder.append(name);
        builder.append(", code=");
        builder.append(code);
        builder.append(", visibleRange=");
        builder.append(visibleRange);
        builder.append(", creator=");
        builder.append(creator);
        builder.append(", isValid=");
        builder.append(isValid);
        builder.append(", createTime=");
        builder.append(createTime);
        builder.append(", updateTime=");
        builder.append(updateTime);
        builder.append(", remark=");
        builder.append(remark);
        builder.append(", userIds=");
        builder.append(userIds);
        builder.append(", users=");
        builder.append(users);
        builder.append("]");
        return builder.toString();
    }
    
}